/** 
 *  
 * @api model.views相关 
 * @apiGroup model.views
  * @apiParam {String} ProductItem  Model的初始状态值  
  * @apiParamExample {json} 示例
  * export const ProductItem = types
    .model('ProductItem', {
        prodName: types.string,
        price: types.number,
        discount: types.number,
    })
    .views(self => ({
        get priceAfterDiscount () {
            return self.price - self.discount;
        }
    }));

  *
  * @apiSuccessExample  {json}方法说明
  * {
  *  views是Model中一系列衍生数据或获取衍生数据的方法的集合，类似Vue组件的computed计算属性。
   上面代码中，定义了priceAfterDiscount，表示商品的折后价格。调用.views方法时，传入的是一个方法，方法的参数self是当前Model的实例，方法需要返回一个对象，表示Model的views集合。

需要注意的是，定义views时有两种选择，使用getter或者不使用。使用getter时，衍生数据的值会被缓存直到依赖的数据发送变化。而不使用时，需要通过方法调用的方式获取衍生数据，无法对计算结果进行缓存。尽可能使用getter，有助于提升应用的性能。
  * }
  */  
